package com.slockerboss.juegos.bolarebota;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;

public class VistaJuegoBolaRebota extends SurfaceView {

	private Paint paint;
	private SurfaceHolder holder;
	private HiloLoopJuego hiloLoopJuego;
	public float x = 0;
	public float y = 0;

	private boolean direccionX = true; // true es que va a la derecha
	private boolean direccionY = true; // true es que va hacia abajo

	public VistaJuegoBolaRebota(Context context) {
		super(context);

		hiloLoopJuego = new HiloLoopJuego(this);

		// Obtener el manejador de esta SurfaceView
		holder = this.getHolder();

		// Ahora tienes q esperar a que la SurfaceView
		// esté creada, hasta que quiera el callback...
		holder.addCallback(new Callback() {

			public void surfaceDestroyed(SurfaceHolder holder) {
				boolean retry = true;
				hiloLoopJuego.setRunning(false);
				while (retry) {
					try {
						hiloLoopJuego.join();
						retry = false;
					} catch (InterruptedException e) {
					}
				}

			}

			public void surfaceCreated(SurfaceHolder holder) {
				hiloLoopJuego.setRunning(true);
				hiloLoopJuego.start();

			}

			public void surfaceChanged(SurfaceHolder holder, int format,
					int width, int height) {
				donothing();

			}
		});

		paint = new Paint();
		paint.setColor(Color.BLUE);

	}

	protected void donothing() {
		// TODO Auto-generated method stub

	}

	@Override
	protected void onDraw(Canvas canvas) {
		// TODO Auto-generated method stub
		// super.onDraw(canvas);
		canvas.drawColor(Color.BLACK);

		if (x < getWidth() - 10 && direccionX) {
			x++;
		} else if (x > 0) {
			direccionX = false;
			x--;
			if (x == 10)
				direccionX = true;
		}
		if (y < getHeight() - 10 && direccionY) {
			y++;
		} else if (y > 0) {
			direccionY = false;
			y--;
			if (y == 10)
				direccionY = true;
		}
		paint.setColor(Color.BLUE);
		canvas.drawCircle(x, y, 14, paint);
	}

	public void setxy(float x, float y) {
		this.x = x;
		this.y = y;

	}

	public void cambiadireccionx() {
		if (direccionX)
			direccionX = false;
		else
			direccionX = true;

	}

	public void cambiadirecciony() {
		if (direccionY)
			direccionY = false;
		else
			direccionY = true;

	}

}
